package cn.edu.scau.sec.rw.model.device_manage.Device;


public class Device_Pcb implements Comparable{
	//到达时间 执行时间长度 结束时间
	//结束时间只有在开始执行的时候才能被赋值
	public int arr,len,end;

	//执行时间 结束时间
	public int Start_IO,EndIO;

	//[arr,StartIO):wait
	//[StartIO,endIO):run
	//[endIO,?):over

	//占用设备类型
	public String type;

	//进程名字
	public String name;

	public Device_Pcb(int arr,int len,String type,String name){
		this.arr=arr;
		this.len=len;
		this.type=type;
		//this.end=arr+len;
		this.name=name;
	}
	public Device_Pcb(Device_Pcb pcb) {
		this.arr=pcb.arr;
		this.len=pcb.len;
		this.name=pcb.name;
		this.type=pcb.type;
	}
	public void setEnd(int arr0) {
		end=arr0+len;
	}

	//有排序操作 这里按到达时间升序排序
	@Override
	public int compareTo(Object c) {
		if(c instanceof Device_Pcb) {
			Device_Pcb L2=(Device_Pcb)c;
			if(this.arr<L2.arr)return -1;
			else if(this.arr==L2.arr)return 0;
			else return 1;
		}throw new ClassCastException("NO!");
	}

}
